package com.spzx.order.service;

import java.util.List;

import com.spzx.order.domain.OrderForm;
import com.spzx.order.domain.OrderInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.spzx.order.domain.TradeVo;

/**
 * 订单Service接口
 *
 * @author atguigu
 * @date 2024-10-13
 */
public interface IOrderInfoService extends IService<OrderInfo>
{

    /**
     * 查询订单列表
     *
     * @param orderInfo 订单
     * @return 订单集合
     */
    public List<OrderInfo> selectOrderInfoList(OrderInfo orderInfo);

    /**
     * 查询订单
     *
     * @param id 订单主键
     * @return 订单
     */
    public OrderInfo selectOrderInfoById(Long id);

    /**
     * 订单的详情查询
     */
    TradeVo orderTradeData();

    /**
     * 下单--用户提交订单
     * @param orderForm
     * @return
     */
    Long submitOrder(OrderForm orderForm);

    /**
     *根据拥护id返回结算实体类
     * @param skuId
     * @return
     */
    TradeVo buy(Long skuId);

    /**
     * 返回用户订单信息 根据用户订单状态
     * @param orderStatus 用户订单状态
     * @return
     */
    List<OrderInfo> listByStatus(Integer orderStatus);

    /**
     * 延迟关闭订单消费者
     * @param parseLong
     */
    void processCloseOrder(long parseLong);

    /**
     * 取消订单
     * @param orderId
     */
    void cancelOrder(Long orderId);
}
